<?php

namespace Ue\ErpBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Product
 *
 * @ORM\Table(name="ue_product", uniqueConstraints={@ORM\UniqueConstraint(name="sku", columns={"sku"})})
 * @ORM\Entity
 */
class Product
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var boolean
     *
     * @ORM\Column(name="is_virtual", type="boolean", nullable=true)
     */
    private $isVirtual = '0';

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=100, nullable=false)
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="sku", type="string", length=30, nullable=false)
     */
    private $sku;

    /**
     * @var string
     *
     * @ORM\Column(name="bar_code", type="string", length=30, nullable=false)
     */
    private $barCode;

    /**
     * @var float
     *
     * @ORM\Column(name="weight", type="float", precision=12, scale=2, nullable=true)
     */
    private $weight = '0.00';

    /**
     * @var integer
     *
     * @ORM\Column(name="stock", type="integer", nullable=true)
     */
    private $stock = '0';

    /**
     * @var integer
     *
     * @ORM\Column(name="safty_stock", type="integer", nullable=true)
     */
    private $saftyStock = '50';

    /**
     * @var integer
     *
     * @ORM\Column(name="alert_stock", type="integer", nullable=true)
     */
    private $alertStock = '20';

    /**
     * @var integer
     *
     * @ORM\Column(name="wait_off_stock", type="integer", nullable=true)
     */
    private $waitOffStock = '0';



    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set isVirtual
     *
     * @param boolean $isVirtual
     * @return Product
     */
    public function setIsVirtual($isVirtual)
    {
        $this->isVirtual = $isVirtual;

        return $this;
    }

    /**
     * Get isVirtual
     *
     * @return boolean 
     */
    public function getIsVirtual()
    {
        return $this->isVirtual;
    }

    /**
     * Set name
     *
     * @param string $name
     * @return Product
     */
    public function setName($name)
    {
        $this->name = $name;

        return $this;
    }

    /**
     * Get name
     *
     * @return string 
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Set sku
     *
     * @param string $sku
     * @return Product
     */
    public function setSku($sku)
    {
        $this->sku = $sku;

        return $this;
    }

    /**
     * Get sku
     *
     * @return string 
     */
    public function getSku()
    {
        return $this->sku;
    }

    /**
     * Set barCode
     *
     * @param string $barCode
     * @return Product
     */
    public function setBarCode($barCode)
    {
        $this->barCode = $barCode;

        return $this;
    }

    /**
     * Get barCode
     *
     * @return string 
     */
    public function getBarCode()
    {
        return $this->barCode;
    }

    /**
     * Set weight
     *
     * @param float $weight
     * @return Product
     */
    public function setWeight($weight)
    {
        $this->weight = $weight;

        return $this;
    }

    /**
     * Get weight
     *
     * @return float 
     */
    public function getWeight()
    {
        return $this->weight;
    }

    /**
     * Set stock
     *
     * @param integer $stock
     * @return Product
     */
    public function setStock($stock)
    {
        $this->stock = $stock;

        return $this;
    }

    /**
     * Get stock
     *
     * @return integer 
     */
    public function getStock()
    {
        return $this->stock;
    }

    /**
     * Set saftyStock
     *
     * @param integer $saftyStock
     * @return Product
     */
    public function setSaftyStock($saftyStock)
    {
        $this->saftyStock = $saftyStock;

        return $this;
    }

    /**
     * Get saftyStock
     *
     * @return integer 
     */
    public function getSaftyStock()
    {
        return $this->saftyStock;
    }

    /**
     * Set alertStock
     *
     * @param integer $alertStock
     * @return Product
     */
    public function setAlertStock($alertStock)
    {
        $this->alertStock = $alertStock;

        return $this;
    }

    /**
     * Get alertStock
     *
     * @return integer 
     */
    public function getAlertStock()
    {
        return $this->alertStock;
    }

    /**
     * Set waitOffStock
     *
     * @param integer $waitOffStock
     * @return Product
     */
    public function setWaitOffStock($waitOffStock)
    {
        $this->waitOffStock = $waitOffStock;

        return $this;
    }

    /**
     * Get waitOffStock
     *
     * @return integer 
     */
    public function getWaitOffStock()
    {
        return $this->waitOffStock;
    }
}
